import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set(font_scale=2)
sns.set_style("whitegrid")
Here's a function:
def f(x):
return x**3 - x +1
def df(x):
return 3*x**2 - 1
xmesh = np.linspace(-4, 4, 100)
plt.ylim([-5, 10])
plt.plot(xmesh, f(xmesh))
guesses = [-.9]
guesses = [1.5]
Evaluate this cell many times in-place (using Ctrl-Enter)
x = guesses[-1] # grab last guess
slope = df(x)
# plot approximate function
plt.plot(xmesh, f(xmesh))
plt.plot(xmesh, f(x) + slope*(xmesh-x))
plt.plot(x, f(x), "o")
plt.xlim([-4, 4])
plt.ylim([-5, 10])
plt.axhline(0, color="black")
# Compute approximate root
xnew = x - f(x) / slope
guesses.append(xnew)
print(xnew)
f(xnew)
print(guesses)